<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>


    <script>
        //ES5  forEach() 没有返回值  遍历 循环  枚举    filter  筛选     some/every   map 循环

        // let arr = [1, 2, 3, 4, 5]
        // arr.forEach(function(item,index,obj){

        // })

        // let x = arr.reduce(function(newVal, oldVal, index, old) {
        //     console.log(newVal, oldVal, index, old)
        //     return oldVal * newVal
        // })
        // console.log(x)

        //伪数组   类数组   Array-Like
        // let o = {
        //     0: 1,
        //     1: 2,
        //     length: 2
        // }

        // let arr = ["a", "b"]

        // console.log(o, arr)

        // console.log(o.length)
        // console.log(arr.length)

        // console.log(arr[0])
        // console.log(o[0])

        //伪数组转真数组  Array.from();
        // function fn() { //求和
        //     // console.log(Array.from(arguments)) //读取实参
        //     return Array.from(arguments).reduce(function(newVal, oldVal) {
        //         return newVal + oldVal;
        //     })


        // }
        // let sum = fn(1, 2, 3, 4, 5);
        // console.log(sum)

        //includes 判断数组中是否包含某一个值  字符串也可以使用
        // let arr = ["a", "b"]
        // console.log(arr.includes("a"))


        //数组去重
        //1.数组当中第一次元素出现的位置 等于 索引值
        // let arr = ["a", "b", "a", "b", "hello", "c"];
        // let newArr = arr.filter(function(item, index, obj) {
        //     console.log(item, index, obj)
        //     return obj.indexOf(item) === index
        // })
        // console.log(newArr)



        // 2.let arr = ["a", "b", "a", "b", "hello", "c"];
        // let newArr = [];
        // arr.forEach(function(item, index, obj) {
        //     if (newArr.indexOf(item) == -1) {
        //         newArr.push(item)
        //     }

        // })
        // console.log(newArr)



        // 3.let arr = ["a", "b", "a", "b", "hello", "c"];
        // let newArr = [];
        // arr.sort();
        // for (let i = 0; i < arr.length; i++) {
        //     if (arr[i] !== arr[i + 1]) {
        //         newArr.push(arr[i])
        //     }
        // }
        // console.log(newArr)



        //4.1.循环遍历数组，把数组的每一项变成对象的属性名
        //2.把对象的属性名，变成数组；
        // let arr = ["a", "b", "a", "b", "hello", "c"];
        // let o = {};
        // let newArr = [];


        // arr.forEach(function(item) {
        //     if (!o[item]) {
        //         o[item] = true
        //     }
        // })

        // for (let key in o) {
        //     newArr.push(key)
        // }

        // console.log(newArr)


        //5.操做原数组
        // let arr = ["a", "b", "a", "b", "hello", "c"];
        // for (let i = 0; i < arr.length; i++) {
        //     for (let j = 0; j < arr.length; j++) {
        //         if (arr[i] === arr[j] && i !== j) {
        //             arr.splice(j, 1)
        //         }
        //     }
        // }

        // console.log(arr)
    </script>
</body>

</html>